<!doctype html>
<html>
 <head>
  <title>{audio,video} events - canplay, then canplaythrough</title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <script src="/common/media.js"></script>
 </head>
 <body>
  <p><a href="https://html.spec.whatwg.org/multipage/#mediaevents">spec reference</a></p>
  <audio id="a" autoplay controls>
  </audio>
  <video id="v" autoplay controls>
  </video>
  <div id="log"></div>
  <script>
test(function() {
  var t = async_test("setting src attribute on autoplay audio should trigger canplay then canplaythrough event");
  var a = document.getElementById("a");
  var found_canplay = false;
  a.addEventListener("error", t.unreached_func());
  a.addEventListener("canplay", t.step_func(function() {
    found_canplay = true;
  }));
  a.addEventListener("canplaythrough", t.step_func(function() {
    assert_true(found_canplay);
    t.done();
    a.pause();
  }), false);
  a.src = getAudioURI("/media/sound_5") + "?" + new Date() + Math.random();
}, "audio events - canplay, then canplaythrough");

test(function() {
  var t = async_test("setting src attribute on autoplay video should trigger canplay then canplaythrough event");
  var v = document.getElementById("v");
  var found_canplay = false;
  v.addEventListener("error", t.unreached_func());
  v.addEventListener("canplay", t.step_func(function() {
    found_canplay = true;
  }));
  v.addEventListener("canplaythrough", t.step_func(function() {
    assert_true(found_canplay);
    t.done();
    v.pause();
  }), false);
  v.src = getVideoURI("/media/movie_5") + "?" + new Date() + Math.random();
}, "video events - canplay, then canplaythrough");
 </script>
 </body>
</html>
